#ifndef __DRV_IIC_H__
#define __DRV_IIC_H__
#include <stm32f4xx.h>
//pb6	scl(时钟线)
//pc7	sda(数据线)
#define SCL_H GPIO_SetBits(GPIOB, GPIO_Pin_6)//给时钟线一个高电平
#define SCL_L GPIO_ResetBits(GPIOB, GPIO_Pin_6)//给时钟线一个低电平

#define SDA_H GPIO_SetBits(GPIOB, GPIO_Pin_7)//给数据线一个高电平
#define SDA_L GPIO_ResetBits(GPIOB, GPIO_Pin_7)//给数据线一个低电平

#define SDA_READ GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7)//读取数据线当前的引脚电平状态
#define ACK 0	//用 ACK 代表「应答信号」的电平约定	
				//当时钟线为高电平时，数据线产生一个有效的低电平
#define NOACK 1	//用 NOACK 代表「非应答信号」的电平约定
				//当时钟线为高电平时，数据线产生一个有效的高电平
void drv_iic_init(void);//对IIC引脚初始化
void drv_sda_in(void);//将sda数据线设置为输入
void drv_sda_out(void);//将sda数据线设置为输出
void drv_iic_start(void);//IIC起始信号
void drv_iic_stop(void);//IIC停止信号
void drv_send_ACK(void);//发送应答信号
void drv_send_NOACK(void);//发送非应答信号
uint8_t drv_wait_ACK(void);//等待应答信号
void drv_send_data(uint8_t data);//iic发送一个字节数据
uint8_t drv_read_data(uint8_t ack_flg);//iic读取一个字节数据
#endif

